import React, { Component } from 'react'
import { Route, Switch, Redirect } from "react-router-dom"
import { permissionRoutes } from './routes'
import FrameLayOut from './components/layout'
class App extends Component {
  
  // 渲染菜单 注意 当前数组需要返回  返回 函数是否需要一个返回值
  _renderRoute = routes => {
    return routes.map(route => {
      if (route.children) {
        return this._renderRoute(route.children) // 直接这样返回会造成 你有children元素的话返回的是一个数组 父节点不见了
        // 可以考虑数组 扁平化处理 flat()
      }  
      return <Route path={ route.path } component={ route.component } key={ route.meta.id }/>
    })
  }

  render() {
    
    return (
      <FrameLayOut>
        <Switch>
          {
            this._renderRoute(permissionRoutes).flat(Infinity)
          }
          <Redirect path="/admin" to="/admin/dashboard" exact />
          <Redirect to="/404" />
        </Switch>
      </FrameLayOut>
    )
  }
}

export default App
